<?php

namespace aerovuelos\UbicacionBundle\Entity;

use Symfony\Component\Security\Core\User\UserInterface;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Validator\Constraints as Assert;
use Symfony\Bridge\Doctrine\Validator\Constraints as DoctrineAssert;

/**
 * Localidades
 *
 * @ORM\Table(name="localidades")
 * @ORM\Entity(repositoryClass="aerovuelos\UbicacionBundle\Entity\UbicacionRepository")
 * @DoctrineAssert\UniqueEntity(fields = {"nombre"}, message= "Este valor ya ha sido registrado.")
 * @DoctrineAssert\UniqueEntity(fields = {"sigla"}, message= "Este valor ya esta en uso.")
 */
class Localidades
{
    /**
     * @var integer
     *
     * @ORM\Column(name="id", type="integer", nullable=false)
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="IDENTITY")
     */
    private $id;

    /**
     * @var string
     *
     * @ORM\Column(name="nombre", type="string", length=255, nullable=false)
     */
    private $nombre;

    /**
     * @var string
     *
     * @ORM\Column(name="sigla", type="string", length=45, nullable=false)
     * @Assert\Length(
     *      min = "3",
     *      minMessage = "Debe tener como minimo {{ limit }} caracteres."
     * )
     * @Assert\NotBlank()
     */
    private $sigla;

    /**
     * @var integer
     *
     * @ORM\Column(name="cod_postal", type="integer", nullable=true)
     * @Assert\Length(
     *      min = "3",
     *      minMessage = "Debe tener como minimo {{ limit }} caracteres."
     * )
     */
    private $codPostal;

    /**
     * @var \Provincias
     *
     * @ORM\ManyToOne(targetEntity="Provincias")
     * @ORM\JoinColumns({
     *   @ORM\JoinColumn(name="provincias_id", referencedColumnName="id")
     * })
     */
    private $provincias;


    public function __toString() {
        return $this->getNombre();
    }

    /**
     * Get id
     *
     * @return integer 
     */
    public function getId()
    {
        return $this->id;
    }

    /**
     * Set nombre
     *
     * @param string $nombre
     * @return Localidades
     */
    public function setNombre($nombre)
    {
        $this->nombre = $nombre;
    
        return $this;
    }

    /**
     * Get nombre
     *
     * @return string 
     */
    public function getNombre()
    {
        return $this->nombre;
    }

    /**
     * Set sigla
     *
     * @param string $sigla
     * @return Localidades
     */
    public function setSigla($sigla)
    {
        $this->sigla = $sigla;
    
        return $this;
    }

    /**
     * Get sigla
     *
     * @return string 
     */
    public function getSigla()
    {
        return $this->sigla;
    }

    /**
     * Set codPostal
     *
     * @param integer $codPostal
     * @return Localidades
     */
    public function setCodPostal($codPostal)
    {
        $this->codPostal = $codPostal;
    
        return $this;
    }

    /**
     * Get codPostal
     *
     * @return integer 
     */
    public function getCodPostal()
    {
        return $this->codPostal;
    }

    /**
     * Set provincias
     *
     * @param \aerovuelos\UbicacionBundle\Entity\Provincias $provincias
     * @return Localidades
     */
    public function setProvincias(\aerovuelos\UbicacionBundle\Entity\Provincias $provincias = null)
    {
        $this->provincias = $provincias;
    
        return $this;
    }

    /**
     * Get provincias
     *
     * @return \aerovuelos\UbicacionBundle\Entity\Provincias 
     */
    public function getProvincias()
    {
        return $this->provincias;
    }
}